import { DataInfo, ModuleData } from "odin";

/** 
 * @Author: zhaolei
 * @Date: 2022-08-10 16:10:46
 * @LastEditors: zhaolei
 * @Description: 金币数据中心
 * CoinDataInfo-金币数据中心的数据结构
 * CoinData-金币数据中心，和ModuleS配合时会自动同步到服务端和自己的客户端，提供方法给外部调用，控制数据的增删改查
 */
class CoinDataInfo extends DataInfo {
    public count: number;
}

export class CoinData extends ModuleData<CoinDataInfo>{
    public constructor() {
        super(CoinDataInfo);
    }

    /**
     * 初始化金币
     */
    protected override initDefaultData(): void {
        this.dataInfo.count = 0;
    }

    /**
     * 增加金币
     * @param count 
     * @returns 
     */
    public addCount(count: number) {
        this.dataInfo.count += count;
        return this.dataInfo.count;
    }
    /**
     * 获取当前金币数量
     */
    public get count() {
        return this.dataInfo.count;
    }
}
